-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[clr-ios] Run full test suite on Apple mobile platforms #123033
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[clr-ios] Run full test suite on Apple mobile platforms #123033
Conversation
|
Tagging subscribers to 'os-ios': @vitek-karas, @kotlarmilos, @steveisok, @akoeplinger |
|
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
|
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Enables broader (up to full) library/runtime test execution on Apple mobile platforms by adjusting Helix payload contents, Apple build MSBuild integration (CoreCLR + R2R/crossgen2), and CI pipeline configuration for iOS/tvOS/MacCatalyst.
Changes:
- Add crossgen2 and related assets to Helix correlation payload and update Apple R2R compilation targets to reference local runtime-pack assemblies.
- Expand Apple-mobile test project selection (libraries + functional tests) and propagate
UseMonoRuntimeinto Helix build commands. - Update CI pipelines (timeouts, Helix arguments) to build/run broader test sets and optionally build Apple apps on Helix.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tests/Common/helixpublishwitharcade.proj | Ships additional CoreCLR build assets (crossgen2) when building Apple apps on Helix. |
| src/mono/msbuild/common/RuntimeComponentManifest.targets | Gates manifest-reading target to Mono runtime usage. |
| src/mono/msbuild/apple/build/AppleBuild.props | Makes Apple R2R targets import path robust (via MSBuildThisFileDirectory). |
| src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets | Ensures crossgen2 gets full runtime-pack managed references (adds libs runtime files). |
| src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props | Defines Crossgen2InBuildDir for AppleBuildSupportDir-based builds. |
| src/libraries/tests.proj | Expands Apple-mobile library/functional test inclusion and adjusts iossimulator conditions. |
| eng/testing/tests.targets | Disables runtime-async preview enabling on Android and Apple mobile targets. |
| eng/testing/tests.ioslike.targets | Passes UseMonoRuntime through Helix build command; always imports Apple build props. |
| eng/pipelines/runtime.yml | Updates Apple CoreCLR job build args/Helix behavior for broader library testing. |
| eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml | Extends timeouts and shifts MacCatalyst CoreCLR jobs to build/run more tests. |
| eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml | Extends timeouts and enables “build apps on Helix” for iOS-like simulator runtime tests. |
| eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml | Extends timeouts and enables “build apps on Helix” for iOS/tvOS device runtime & library tests. |
| and '$(TargetOS)' != 'wasi' | ||
| and '$(TargetOS)' != 'android' | ||
| and '$(TargetsAppleMobile)' != 'true' | ||
| and '$(RuntimeFlavor)' != 'Mono' | ||
| and '$(UseRuntimeAsync)' != 'false'"> |
Copilot
AI
Jan 30, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block’s comment says runtime-async is enabled for “all .NET 11+ test projects”, but the condition now excludes Android and Apple mobile targets. Please update the comment to reflect these exclusions (or explain why these platforms are intentionally opted out).
|
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
| nameSuffix: AllSubsets_CoreCLR_Smoke | ||
| buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true | ||
| timeoutInMinutes: 120 | ||
| buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false |
Copilot
AI
Jan 30, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this MacCatalyst CoreCLR libraries job, the buildArgs no longer pass /p:BuildTestsOnHelix=true. For mobile targets (maccatalyst is TargetsMobile=true), ArchiveTests only runs when BuildTestsOnHelix=true (see eng/testing/tests.targets:92-95), so this job is likely to skip producing the test archives needed by the subsequent helix.yml step. Add /p:BuildTestsOnHelix=true to the buildArgs (or otherwise ensure BuildTestsOnHelix is set during the build) so archiving and Helix submission work consistently.
| buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false | |
| buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BuildTestsOnHelix=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false |
| <ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(TargetOS)' == 'ios' and '$(RunAOTCompilation)' == 'true'"> | ||
| <!-- Only System.Runtime tests on iOS for now --> | ||
| <ProjectReference Include="$(MSBuildThisFileDirectory)System.Runtime\tests\System.Runtime.Tests\System.Runtime.Tests.csproj" /> | ||
|
|
||
| <ProjectReference Include="$(RepoRoot)\src\tests\FunctionalTests\iOS\Device\**\*.Test.csproj" | ||
| Exclude="@(ProjectExclusions)" | ||
| BuildInParallel="false" /> | ||
| </ItemGroup> | ||
|
|
||
| <ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(TargetOS)' == 'ios' and '$(RuntimeFlavor)' == 'CoreCLR' and '$(UseNativeAOTRuntime)' != 'true'"> | ||
| <ProjectReference Include="$(MSBuildThisFileDirectory)System.Runtime\tests\System.Runtime.Tests\System.Runtime.Tests.csproj" /> |
Copilot
AI
Jan 30, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two ItemGroups add the same ProjectReference entries under overlapping conditions. If a CoreCLR iOS run is ever configured with RunAOTCompilation=true (or if RunAOTCompilation is set globally), the same projects will be referenced twice. Consider consolidating into a single ItemGroup with a mutually exclusive condition, or guard the first ItemGroup to exclude CoreCLR (e.g., add a RuntimeFlavor check) to avoid duplicate references and keep this section maintainable.
Description
This PR enables running full test suite on Apple mobile platforms.
Fixes #120055